COBOL একটি উচ্চ-স্তরের প্রোগ্রামিং ভাষা, যা মূলত ব্যবসায়িক অ্যাপ্লিকেশনগুলির জন্য ব্যবহৃত হয়। এর মধ্যে মেমোরি এলোকেশন এবং ডিলোকেশন এর ধারণা কিছুটা ভিন্ন। COBOL সাধারণত Static Memory Allocation ব্যবহার করে, অর্থাৎ ডেটা এবং স্ট্রাকচারগুলি প্রোগ্রাম শুরু হওয়ার সময় মেমোরিতে রিজার্ভ করা হয় এবং প্রোগ্রামটি চলাকালীন সময় পর্যন্ত এগুলি রিজার্ভ থাকে।
COBOL এ মেমোরি এলোকেশন এবং ডিলোকেশন সরাসরি ব্যবহারকারী বা ডেভেলপার দ্বারা নিয়ন্ত্রিত হয় না, বরং এটি প্রোগ্রামটি চলাকালীন সময়ে ভাষার নিজস্ব সিস্টেম এবং ডেটা মডেল দ্বারা পরিচালিত হয়।
COBOL সাধারণত Static Memory Allocation ব্যবহার করে, যেখানে ডেটা এলোকেশন কম্পাইল টাইমে হয় এবং রানটাইমে সেই মেমোরি স্থির থাকে। এর মানে হল যে, আপনি যখন কোনো ডেটা বা ভ্যারিয়েবল ডিফাইন করেন, তখন COBOL সেগুলিকে মেমোরিতে নির্দিষ্ট স্থান প্রদান করে এবং সেই স্থানটি প্রোগ্রামের সমাপ্তি পর্যন্ত ধরে রাখে।
01 MY-VARIABLE PIC X(20).
এখানে, MY-VARIABLE একটি PIC X(20) টাইপের ভ্যারিয়েবল, যার জন্য ২০টি চরিত্র ধারণ করার জন্য মেমোরি এলোকেট করা হবে।
COBOL এ মেমোরি এলোকেশন মূলত Working-Storage Section এ হয়, যা Static Memory Allocation এর উদাহরণ। এখানে ডেটা ডিফাইন করা হয় এবং প্রোগ্রামটির জীবনকালজুড়ে তা মেমোরিতে রিজার্ভ থাকে।
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CUSTOMER-NAME PIC X(50).
01 CUSTOMER-AGE PIC 99.
01 TOTAL-AMOUNT PIC 9(5)V99.
এখানে, CUSTOMER-NAME, CUSTOMER-AGE, এবং TOTAL-AMOUNT ভ্যারিয়েবলগুলির জন্য মেমোরি এলোকেট করা হয় এবং এগুলি প্রোগ্রাম চলাকালীন সময়ে ব্যবহৃত হবে।
ফাইল সেকশনেও মেমোরি এলোকেশন করা হয়, যেখানে ফাইলের জন্য রেকর্ড স্ট্রাকচার ডিফাইন করা হয়। COBOL এ ইনপুট/আউটপুট অপারেশনের সময় ফাইলগুলির জন্য মেমোরি এলোকেট করা হয়, কিন্তু এখানে মেমোরি ম্যানেজমেন্ট সাধারণত স্বয়ংক্রিয়ভাবে ঘটে।
DATA DIVISION.
FILE SECTION.
FD CUSTOMER-FILE.
01 CUSTOMER-RECORD.
05 CUSTOMER-ID PIC 9(5).
05 CUSTOMER-NAME PIC X(50).
05 CUSTOMER-BALANCE PIC 9(7)V99.
এখানে CUSTOMER-FILE ফাইলটির জন্য রেকর্ড ডিফাইন করা হয়েছে, এবং COBOL এই রেকর্ডগুলির জন্য মেমোরি এলোকেট করে।
COBOL প্রোগ্রামে Memory Deallocation (মেমোরি ডিলোকেশন) সাধারণত স্বয়ংক্রিয়ভাবে পরিচালিত হয়। COBOL-এর স্ট্যাটিক মেমোরি এলোকেশন ব্যবস্থায় ডেটা এবং ভ্যারিয়েবলগুলো রানটাইমে ডিলোকেট বা ফ্রি করার প্রয়োজন হয় না, কারণ COBOL রানটাইমের শেষে মেমোরি নিজে থেকেই রিলিজ করে দেয়।
অর্থাৎ, Working-Storage Section, File Section, বা অন্যান্য স্ট্যাটিক মেমোরি সেকশনে ডিফাইন করা ভ্যারিয়েবলগুলি প্রোগ্রাম শেষ হওয়ার সময় মেমোরি থেকে স্বয়ংক্রিয়ভাবে ডিলোকেট হয়ে যায়। COBOL তৃতীয় পক্ষের Garbage Collection বা Memory Deallocation সিস্টেম ব্যবহার করে না, বরং এটি নিজেই এই কাজটি সম্পন্ন করে।
COBOL-এ সাধারণত Dynamic Memory Allocation ব্যবহার করা হয় না, তবে কিছু বিশেষ পরিস্থিতিতে ALLOCATE এবং DEALLOCATE স্টেটমেন্টগুলি ব্যবহার করা হতে পারে। এই স্টেটমেন্টগুলি মূলত COBOL-এ মেমোরি এলোকেশন এবং ডিলোকেশন ব্যবস্থাপনার জন্য ব্যবহার করা হয়।
ALLOCATE dynamic-area SIZE 1000
এখানে, ALLOCATE স্টেটমেন্টটি dynamic-area নামক একটি ডাইনামিক মেমোরি এলাকার জন্য 1000 বাইট মেমোরি রিজার্ভ করবে।
DEALLOCATE dynamic-area
এটি dynamic-area থেকে মেমোরি মুক্ত করে।
COBOL-এ মেমোরি এলোকেশন এবং ডিলোকেশন সাধারণত স্ট্যাটিক ভাবে পরিচালিত হয়, যেখানে ডেটা এলোকেশন প্রোগ্রাম শুরু হওয়ার সময় হয় এবং প্রোগ্রাম শেষ হওয়ার পর মেমোরি নিজে থেকেই রিলিজ হয়ে যায়। Working-Storage Section এবং File Section এ মেমোরি এলোকেট করা হয়, এবং ALLOCATE বা DEALLOCATE স্টেটমেন্টগুলি বিশেষ পরিস্থিতিতে ডাইনামিক মেমোরি ব্যবস্থাপনার জন্য ব্যবহৃত হয়। COBOL প্রোগ্রামে মেমোরি ব্যবস্থাপনা বেশিরভাগ সময় স্বয়ংক্রিয়ভাবে করা হয়, কিন্তু কখনো কখনো এটি ম্যানুয়ালি নিয়ন্ত্রণ করা যেতে পারে।
common.read_more